package coneccion;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import javax.naming.NamingException;

import mapeo.DocumentoIdentidadMapper;

import objetos.DocumentoIdentidad;

import utils.UtilidadesConexion;

public class DocumentoIdentidadConsultas {
	
	
	public DocumentoIdentidadConsultas() {
		super();
	}

	public DocumentoIdentidad getDocumentoIdentidadPorId(Integer id){
		DocumentoIdentidad documentoIdentidad = null; 
		Connection con = null;
		Statement stmt = null;
		ResultSet rs = null;
		StringBuilder query = new StringBuilder("");		
		
		try {
			//creo la coneccion y la sentencia
			con = UtilidadesConexion.getConnectionFromTomcatPool();
			con.setAutoCommit(true);
			stmt = con.createStatement();
			
			//creo la consulta
			query.append("SELECT DISTINCT tipos_documentos_id, tipos_documentos_nombre, tipos_documentos_nombre_completo ");
			query.append("FROM tipos_documentos ");
			query.append("WHERE tipos_documentos_id=").append(id.toString()).append(" ");
			rs = stmt.executeQuery(query.toString());
			
			DocumentoIdentidadMapper documentoIdentidadMappper = new DocumentoIdentidadMapper();
			documentoIdentidad = documentoIdentidadMappper.parseDocumentoIdentidad(rs);
		} catch (NamingException e) {
			e.printStackTrace();
			documentoIdentidad = new DocumentoIdentidad();
		} catch (SQLException e) {
			e.printStackTrace();
			documentoIdentidad = new DocumentoIdentidad();
		} catch (Exception e) {
			e.printStackTrace();
			documentoIdentidad = new DocumentoIdentidad();
		} finally {
			if (rs != null) {
			      try { 
			    	  rs.close(); 
			      } catch (SQLException e) {
			    	  
			      }
			      rs = null;
		    }
		    if (stmt != null) {
		      try { 
		    	  	stmt.close();
		    	  } catch (SQLException e) {
		    		  
		    	  }
		      stmt = null;
		    }
			if(con!=null){
				try {
					con.close();
				} catch (SQLException e) {
					
				}
				con = null;
			}
		}
		
		return documentoIdentidad;
	}
	
	public List<DocumentoIdentidad> getTodosDocumentoIdentidad(){
		List<DocumentoIdentidad> listaDocumentoIdentidad = null; 
		Connection con = null;
		Statement stmt = null;
		ResultSet rs = null;
		StringBuilder query = new StringBuilder("");		
		
		try {
			//creo la coneccion y la sentencia
			con = UtilidadesConexion.getConnectionFromTomcatPool();
			con.setAutoCommit(true);
			stmt = con.createStatement();
			
			//creo la consulta
			query.append("SELECT DISTINCT tipos_documentos_id, tipos_documentos_nombre, tipos_documentos_nombre_completo ");
			query.append("FROM tipos_documentos ");
			
			rs = stmt.executeQuery(query.toString());
			
			DocumentoIdentidadMapper documentoIdentidadMappper = new DocumentoIdentidadMapper();
			listaDocumentoIdentidad = documentoIdentidadMappper.parseListaDocumentoIdentidad(rs);
		} catch (NamingException e) {
			e.printStackTrace();
			listaDocumentoIdentidad = new ArrayList<DocumentoIdentidad>();
		} catch (SQLException e) {
			e.printStackTrace();
			listaDocumentoIdentidad = new ArrayList<DocumentoIdentidad>();
		}catch (Exception e) {
			e.printStackTrace();
			listaDocumentoIdentidad = new ArrayList<DocumentoIdentidad>();
		}  finally {
			if (rs != null) {
			      try { 
			    	  rs.close(); 
			      } catch (SQLException e) {
			    	  
			      }
			      rs = null;
		    }
		    if (stmt != null) {
		      try { 
		    	  	stmt.close();
		    	  } catch (SQLException e) {
		    		  
		    	  }
		      stmt = null;
		    }
			if(con!=null){
				try {
					con.close();
				} catch (SQLException e) {
					
				}
				con = null;
			}
		}
		
		return listaDocumentoIdentidad;
	}
}
